///////////////////////////////////////////////////////////////////////////////
// File:        SqlConnection.hpp
// Author:      671643387@qq.com
// Description: 
///////////////////////////////////////////////////////////////////////////////

#if !defined(SHARED_DATABASE_SQLCONNECTION_HPP_)
#define SHARED_DATABASE_SQLCONNECTION_HPP_

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

#include <string>
#include <boost/shared_ptr.hpp>
#include "database/SqlResultSet.hpp"

///////////////////////////////////////////////////////////////////////////////
class SqlConnection
{
public:
    ///////////////////////////////////////////////////////////////////////////
    SqlConnection(void);
    virtual ~SqlConnection(void);

public:
    ///////////////////////////////////////////////////////////////////////////
    virtual bool Open(std::string info) = 0;
    virtual void Close(void) = 0;

    ///////////////////////////////////////////////////////////////////////////
    virtual SqlResultSetPtr Query(std::string sql) = 0;
    virtual bool Execute(std::string sql) = 0;
};

typedef boost::shared_ptr<SqlConnection>  SqlConnectionPtr;

#endif //SHARED_DATABASE_SQLCONNECTION_HPP_
